rm(list = ls(all = TRUE)) #clear workspace
setwd("~/Dropbox/REDISTRICTING/DISTRITACION 79-97")

## ------------------------------------
## COMPUTOS DISTRITALES 1997 - DIPUTADO
## ------------------------------------
# Computos 1997 x seccion
partidos <- c("PAN","PRI","PRD","PC","PT","PVEM","PPS","PDM") 
computo <- read.table("DIPUTADOS_1997.txt", header=TRUE, sep="|")
computo <- aggregate(computo[,partidos], 
                     by=computo[c("ID_ENT","SECC","ID_DTTO")], 
                     sum, na.rm=TRUE)

## -----------------
## Distritacion 1997
## -----------------
## Agregar por distrito
data97 <- aggregate(computo[,partidos], 
                    by=computo[c("ID_ENT","ID_DTTO")], 
                    sum, na.rm=TRUE)

## -----------------
## Distritacion 1994
## -----------------
# Tabla equivalencia seccional
tabla <- read.table("tabla_equivalencias_seccionales.txt", header=TRUE, sep="\t", fill=TRUE)
tabla <- tabla[,c("cve_ent","seccion","Distrito_PEF1994")]

# Merge
data94 <- merge(computo, tabla, 
                by.x=c("ID_ENT","SECC"), 
                by.y=c("cve_ent","seccion"), 
                all.x=TRUE)
summary(data94)
# solo 17 secciones sin distrito de 1994
data94 <- data94[!is.na(data94$Distrito_PEF1994),]

## Agregar por distrito
data94 <- aggregate(data94[,partidos], 
                    by=data94[c("ID_ENT","Distrito_PEF1994")], 
                    sum, na.rm=TRUE)

## -----------------
## Compara ganador
## -----------------
ganador94 <- apply(data94[,partidos], 1, function(x) names(which.max(x)))
ganador97 <- apply(data97[,partidos], 1, function(x) names(which.max(x)))

table(ganador94)
table(ganador97)

table(data94$ID_ENT, ganador94)
table(data97$ID_ENT, ganador97)

diff <- table(data97$ID_ENT, ganador97)-table(data94$ID_ENT, ganador94)
print(diff)
apply(diff, 2, sum)

cambio.dtos <-  rowSums(table(data97$ID_ENT, ganador97))-
  rowSums(table(data94$ID_ENT, ganador94)) 
cbind(cambio.dtos, diff)